<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>

    </style>
</head>
<body>

</body>
<script>
    // var a=10;
    // console.log(a);
    // console.log(window.a)
    // let b=20;
    // console.log(b);
    // console.log(window.b)

    // 【注】let声明的全局变量不能自动绑定到window

    // var a=10;
    // var a=20;
    // console.log(a)
    // let b=10;
    // let b=20;
    // console.log(b)
    // 【注】let声明的变量不能重新赋值

    // if(true){
    //     var a=10;
    // }
    // console.log(a)
    // if(true){
    //     let b=20;
    // }
    // console.log(b)

    // {
    //     let c=111
    // }
    // console.log(c)

    // 【注】会触发块级作用域，{}即为作用域，声明的变量只在花括号内有作用

    // console.log(a);
    // var a=10;
    // console.log(a);

    // console.log(b);
    // let b=20;
    // console.log(b);

    // 【注】申明的变量不存在变量的提升

    // 暂时性死区
    // function fn(){
    //     a = 20;
    //     let a = 10;
    //     console.log(a)
    // }
    // fn()


    // const与let的区别
        // let的特点，const全部具备
        // const声明的变量不允许修改地址（不能修改基本数据的值）
        // 基本类型：值就是地址
        // 复杂类型：地址是地址，值是值（对象）
    
</script>
</html>